package demo5;

/**
 * 自序列问题
 *      摆动序列
 */
public class test2 {
    public int wiggleMaxLength(int[] nums) {
        // 创建dp表
        int n = nums.length;
        int[] f = new int[n];
        int[] g = new int[n];
        // 初始化
        for (int i = 0; i < n; i++) {
            f[i] = g[i] = 1;
        }
        int ret = 1;
        for (int i = 1; i < n; i++) {
            for (int j = 0; j < i; j++) {
                if(nums[j]<nums[i]){
                    f[i] = Math.max(f[i],g[j]+1);
                } else if(nums[j]>nums[i]){
                    g[i] = Math.max(g[i],f[j]+1);
                }
            }
            ret = Math.max(ret,Math.max(f[i],g[i]));
        }
        return ret;
    }
}
